home *** CD-ROM | disk | FTP | other *** search
/ Floppyshop 2 / Floppyshop - 2.zip / Floppyshop - 2.iso / diskmags / 5791-.end / dmg-5873 / 3rdguide / prt_4col.lst < prev    next >
File List  |  1993-10-05  |  2KB  |  124 lines

  1. ' FULLPAGE ... 160 col. et 100 lignes !!!
  2. ' Imprime un fichier texte sur 4 col. de 40 car.
  3. ch$=CHR$(13)+CHR$(27)+"M"+CHR$(15)+CHR$(27)+"A"+CHR$(8)
  4. xprint(ch$)
  5. FILESELECT "\*.*","",f$
  6. IF f$=""
  7.   END
  8. ENDIF
  9. OPEN "I",#1,f$
  10. lg%=LOF(#1)
  11. CLOSE #1
  12. DIM tamp(lg%/6+1)
  13. tamp%=VARPTR(tamp(0))
  14. eclaireur%=tamp%
  15. BLOAD f$,tamp%
  16. POKE tamp%+lg%,0
  17. GOTO main
  18. PROCEDURE xprint(ch$)
  19.   FOR i=1 TO LEN(ch$)
  20.     VOID BIOS(3,0,ASC(MID$(ch$,i,1)))
  21.   NEXT i
  22. RETURN
  23. PROCEDURE expcol
  24.   REPEAT
  25.     REPEAT
  26.       car%=PEEK(eclaireur%)
  27.       INC eclaireur%
  28.       IF car%<>0 AND car%<>10 AND car%<>13
  29.         INC col%
  30.       ENDIF
  31.     UNTIL car%=0 OR car%=13 OR col%=40
  32.     IF col%=40 AND PEEK(eclaireur%)=13 AND PEEK(eclaireur%+1)=10
  33.       ADD eclaireur%,2
  34.     ENDIF
  35.     col%=0
  36.     INC lin%
  37.   UNTIL car%=0 OR lin%=100
  38.   lin%=0
  39. RETURN
  40. PROCEDURE spitcar(ptr%)
  41.   REPEAT
  42.     car%=PEEK(ptr%)
  43.     INC ptr%
  44.     IF car%<>0 AND car%<>10 AND car%<>13
  45.       INC col%
  46.     ENDIF
  47.     IF car%>=32 THEN
  48.       ch$=CHR$(car%)
  49.       xprint(ch$)
  50.     ELSE
  51.       IF car%<>0 AND car%<>10 AND car%<>13
  52.         ch$=CHR$(168)
  53.         xprint(ch$)
  54.       ENDIF
  55.     ENDIF
  56.   UNTIL car%=0 OR car%=13 OR col%=40
  57.   IF col%=40 AND PEEK(ptr%)=13 AND PEEK(ptr%+1)=10
  58.     ADD ptr%,2
  59.   ENDIF
  60.   IF car%=0
  61.     ptr%=-1
  62.   ENDIF
  63.   WHILE col%<40
  64.     ch$=" "
  65.     xprint(ch$)
  66.     INC col%
  67.   WEND
  68.   col%=0
  69.   nouvptr%=ptr%
  70. RETURN
  71. main: ! Boucle principale
  72. DO
  73.   col%=0 ! (0 à 39 )*4
  74.   lin%=0 ! 0 à 101
  75.   ptr1c%=-1
  76.   ptr2c%=-1
  77.   ptr3c%=-1
  78.   ptr4c%=-1
  79.   ' Initialiser Ptr1c%,Ptr2c%,Ptr3c%,Ptr4c% (=-1 si col. inexistante)
  80.   car%=PEEK(eclaireur%)
  81.   IF car%<>0
  82.     ptr1c%=eclaireur%
  83.     @expcol
  84.     IF car%<>0
  85.       ptr2c%=eclaireur%
  86.       @expcol
  87.       IF car%<>0
  88.         ptr3c%=eclaireur%
  89.         @expcol
  90.         IF car%<>0
  91.           ptr4c%=eclaireur%
  92.           @expcol
  93.         ENDIF
  94.       ENDIF
  95.     ENDIF
  96.   ENDIF
  97.   ' Impression d'une page
  98.   WHILE ptr1c%<>-1 AND lin%<100
  99.     @spitcar(ptr1c%)
  100.     ptr1c%=nouvptr%
  101.     IF ptr2c%<>-1
  102.       @spitcar(ptr2c%)
  103.       ptr2c%=nouvptr%
  104.     ENDIF
  105.     IF ptr3c%<>-1
  106.       @spitcar(ptr3c%)
  107.       ptr3c%=nouvptr%
  108.     ENDIF
  109.     IF ptr4c%<>-1
  110.       @spitcar(ptr4c%)
  111.       ptr4c%=nouvptr%
  112.     ENDIF
  113.     ch$=CHR$(13)+CHR$(10)
  114.     xprint(ch$)
  115.     INC lin%
  116.   WEND
  117.   EXIT IF PEEK(eclaireur%)=0
  118.   ALERT 3,"Changement de page",1,"[Prèt ?]",dummy%
  119. LOOP
  120. ch$=CHR$(27)+"@"  !reset
  121. xprint(ch$)
  122. ALERT 0,"Fin",1,"[ ... ]",dummy%
  123. END
  124.